package model;

import jade.util.leap.Serializable;

import java.util.ArrayList;
import java.util.List;

public class Rota implements Serializable{
	private ArrayList<SubRota> subrotas;
	private Coordenada origem;
	private Coordenada destino;
	private String descOrig;
	private String descDest;
	private double custo;
	private double distancia;
	private int numConducoes;
	private String msg;
	
	
	
	//construtor
	public Rota(){
		subrotas = new ArrayList<SubRota>();
		origem = new Coordenada();
		destino = new Coordenada();
	}


	//gets e sets
	
	public List<SubRota> getSubrotas() {
		return subrotas;
	}
	public void setSubrotas(ArrayList<SubRota>subrotas) {
		this.subrotas = subrotas;
		setCusto();
		setDistancia();
		setNumConducoes();
	}


	public Coordenada getOrigem() {
		return origem;
	}
	public void setOrigem(Coordenada origem) {
		this.origem = origem;
	}


	public Coordenada getDestino() {
		return destino;
	}
	public void setDestino(Coordenada destino) {
		this.destino = destino;
	}

	public double getCusto() {
		return custo;
	}
	private void setCusto() {
		for(int i=0; i<subrotas.size(); i++){
			this.custo += this.subrotas.get(i).getTarifa();
		}
	}

	public double getDistancia() {
		return distancia;
	}
	private void setDistancia() {
		for(int i=0; i<subrotas.size(); i++){
			this.distancia += this.subrotas.get(i).getDistancia();
		}
	}

	public int getNumConducoes() {
		return numConducoes;
	}
	private void setNumConducoes() {
		numConducoes = subrotas.size();
		
		/*for(int i=0; i<subrotas.size(); i++){
			if( this.subrotas.get(i).getTipo().equals("�nibus")){
				this.numConducoes += 1;
			}
			if( this.subrotas.get(i).getTipo().equals("Metr�")){
				this.numConducoes += 1;
			}
			if( this.subrotas.get(i).getTipo().equals("CPTM")){
				this.numConducoes += 1;
			}
			if( this.subrotas.get(i).getTipo().equals("�nibus + CPTM")){
				this.numConducoes += 2;
			}
			if( this.subrotas.get(i).getTipo().equals("�nibus + Metr�")){
				this.numConducoes += 2;
			}
			if( this.subrotas.get(i).getTipo().equals("�nibus + Metr� + CPTM")){
				this.numConducoes += 3;
			}
		}
		*/
	}


	public String getDescOrig() {
		return descOrig;
	}
	public void setDescOrig(String descOrig) {
		this.descOrig = descOrig;
	}
	

	public String getDescDest() {
		return descDest;
	}
	public void setDescDest(String descDest) {
		this.descDest = descDest;
	}


	public String getMsg() {
		return msg;
	}


	public void setMsg(String msg) {
		this.msg = msg;
	}
	
	
	
}
